MySQL select specific cols 比 select * 慢
全部标签 是否有机会在PDO设置中设置SELECT将在SLAVEDB服务器上执行,而Insert&Update&DELETE将在MASTERDB服务器上执行,或者我需要创建PHP处理程序来执行此操作?情况:我们有Master-MasterMySQL复制。我们将添加两台新服务器,因此它将是-Master/Slave-Master/Slave。我想为SELECT查询创建一些处理。我想在SLAVE而不是MASTER上执行SELECT查询,所有UPADTE&INSERT&DELETE查询都将在MASTER上执行。这可能有一些设置吗?谢谢! 最佳答案
是否有机会在PDO设置中设置SELECT将在SLAVEDB服务器上执行,而Insert&Update&DELETE将在MASTERDB服务器上执行,或者我需要创建PHP处理程序来执行此操作?情况:我们有Master-MasterMySQL复制。我们将添加两台新服务器,因此它将是-Master/Slave-Master/Slave。我想为SELECT查询创建一些处理。我想在SLAVE而不是MASTER上执行SELECT查询,所有UPADTE&INSERT&DELETE查询都将在MASTER上执行。这可能有一些设置吗?谢谢! 最佳答案
我知道以下查询将从链接服务器中提取结果集:SELECT*FROMopenquery(DEVMYSQL,'SELECTevent_id,people_id,role_id,rank,last_updatedFROMevent_cast')但是,插入时也是这样吗?它会下拉结果集还是只获取列信息?INSERTINTOopenquery(DEVMYSQL,'SELECTevent_id,people_id,role_id,rank,last_updatedFROMevent_cast')如果是前者,那么这是非常低效的。我是否应该限制返回的结果集,这会影响我的INSERT吗?这基本上是一个关于O
我知道以下查询将从链接服务器中提取结果集:SELECT*FROMopenquery(DEVMYSQL,'SELECTevent_id,people_id,role_id,rank,last_updatedFROMevent_cast')但是,插入时也是这样吗?它会下拉结果集还是只获取列信息?INSERTINTOopenquery(DEVMYSQL,'SELECTevent_id,people_id,role_id,rank,last_updatedFROMevent_cast')如果是前者,那么这是非常低效的。我是否应该限制返回的结果集,这会影响我的INSERT吗?这基本上是一个关于O
根据文档,我正在(希望)完全按照它应该使用的方式使用Yii2的ActiveRecord实现。问题在表之间具有简单关系的非常简单的设置中,获取10个结果很快,获取100个结果很慢。1000是不可能的。该数据库非常小,索引完美。问题绝对是Yii2请求数据的方式,而不是数据库本身。我正在使用标准的ActiveDataProvider,例如:$provider=newActiveDataProvider(['query'=>Post::find(),'pagination'=>false//togetallrecords]);我怀疑使用Yii2工具栏进行调试显示,对于一个简单的请求,应该只从表
根据文档,我正在(希望)完全按照它应该使用的方式使用Yii2的ActiveRecord实现。问题在表之间具有简单关系的非常简单的设置中,获取10个结果很快,获取100个结果很慢。1000是不可能的。该数据库非常小,索引完美。问题绝对是Yii2请求数据的方式,而不是数据库本身。我正在使用标准的ActiveDataProvider,例如:$provider=newActiveDataProvider(['query'=>Post::find(),'pagination'=>false//togetallrecords]);我怀疑使用Yii2工具栏进行调试显示,对于一个简单的请求,应该只从表
假设我有一张表,email_phone_notes,如下所示:+-----------------------+--------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-----------------------+--------------+------+-----+---------+-------+|email|varchar|NO|PRI|NULL|||phone|varchar|NO|PRI|NULL|||notes|text|NO||0||+------------
假设我有一张表,email_phone_notes,如下所示:+-----------------------+--------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-----------------------+--------------+------+-----+---------+-------+|email|varchar|NO|PRI|NULL|||phone|varchar|NO|PRI|NULL|||notes|text|NO||0||+------------
我需要按以下方式执行选择查询:select*frommy_tablewhereidNOTIN(comma_delimited_string);实现该目标的正确方法是什么?考虑到我可以控制发送字符串的客户端代码,是否有更好的方法?(该字符串将包含大约30个ID,因此我尽量避免发送30个参数,每个ID一个)。谢谢大家 最佳答案 您可以使用MySQLFIND_IN_SET功能:SELECT*FROMmy_tableWHEREFIND_IN_SET(id,comma_delimited_string)=0附录:请注意上面的查询是不可优化的,
我需要按以下方式执行选择查询:select*frommy_tablewhereidNOTIN(comma_delimited_string);实现该目标的正确方法是什么?考虑到我可以控制发送字符串的客户端代码,是否有更好的方法?(该字符串将包含大约30个ID,因此我尽量避免发送30个参数,每个ID一个)。谢谢大家 最佳答案 您可以使用MySQLFIND_IN_SET功能:SELECT*FROMmy_tableWHEREFIND_IN_SET(id,comma_delimited_string)=0附录:请注意上面的查询是不可优化的,